package pe.cromosoma;

import pe.algenetico.MiRandom;


public class FactoriaCromosoma {
	public static Cromosoma getCromosoma(int funcion) {		
		switch(funcion){
			case 0: return new CromosomaFunc1();
			case 1: return new CromosomaFunc2();
			case 2: return new CromosomaFunc3();
			case 3: return new CromosomaFunc4();
			case 4: return new CromosomaFunc5();
			default: return null;
		}
	}
	
	public static Cromosoma getCromosoma(int funcion, Cromosoma cromo) {		
		switch(funcion){
			case 0: return new CromosomaFunc1((CromosomaFunc1)cromo);
			case 1: return new CromosomaFunc2((CromosomaFunc2)cromo);
			case 2: return new CromosomaFunc3((CromosomaFunc3)cromo);
			case 3: return new CromosomaFunc4((CromosomaFunc4)cromo);
			case 4: return new CromosomaFunc5((CromosomaFunc5)cromo);
			default: return null;
		}
	}
	
	public static Cromosoma getCromosoma(int funcion, double tol, int valor_n, MiRandom ran) {		
		switch(funcion){
			case 0: return new CromosomaFunc1(tol,valor_n, ran);
			case 1: return new CromosomaFunc2(tol,valor_n, ran);
			case 2: return new CromosomaFunc3(tol,valor_n, ran);
			case 3: return new CromosomaFunc4(tol,valor_n, ran);
			case 4: return new CromosomaFunc5(tol,valor_n, ran);
			default: return null;
		}
	}
}
